大家好,我是Leo
今天我來介紹的是django的超級使用者建立 & model的建置
OK~~~ Let's go now!!!
還記得我們昨天在setting內設置的db name嗎
先去database create一個同名的資料庫
這裡我創建的名稱是mydb2,這邊可以創建你們自己的資料庫名稱
切入與 manage.py 同層,打上下方的code
python .\manage.py migrate
恭喜您,輕鬆的生成 django內建資料表
python .\manage.py createsuperuser
建立完成後,接下來我們要進入django 的後台囉
python .\manage.py runserver
進入 http://127.0.0.1:8000/admin/
我們可以在auth_user 內 看到相關的帳號資訊
在models 創建一個py檔,名字為users
在這邊之後會講到使用者註冊功能
所以先在這裡創建一個users_model.py
users_model.py
from django.contrib.auth.models import User
from django.db import models
class Users(models.Model):
id = models.AutoField(primary_key=True)
auth_user = models.OneToOneField(User, on_delete=models.PROTECT,related_name='users')
tel = models.CharField(max_length=255, null=True)
language = models.IntegerField(default=1,null=True) # INT[null, note: '1:繁體中文']
title = models.CharField(max_length=255,null=True)
status = models.IntegerField(default=0) # INT[not null, note: '0:待認證 1:啟用 2:停用']
created_at = models.DateTimeField(auto_now_add = True,editable=False)
updated_at = models.DateTimeField(auto_now = True)
deleted_at = models.DateTimeField(null=True)
models/init
from .users_model import *
AutoField => auto increment
OneToOneField => 一對一關聯
models.PROTECT => 保護模式,刪除的時候,會拋出ProtectedError錯誤
related_name='users' => 反向查詢
CharField => 文字
max_length => 最大長度
null => 允許空值
IntegerField => 數字
default => 預設值
DateTimeField => Datetime格式
auto_now_add=True => 自動生成現在時間
editable=False => 表單類中將不會出現該字段,因為不會編輯到created_at自然也不用放入
階層圖如下
|-- apps.py
|-- forms.py
|-- serializers.py
|-- __init__.py
|-- migrations
| |-- __init__.py
|-- models
| |-- users_model.py
| |-- __init__.py
|-- views
| |-- __init__.py
|-- __pycache__
DB設計概念圖,因要擴展auth_user欄位,則使用OneToOne的方式擴展
python .\manage.py makemigrations
這時候會發現在website/migrations 內會自動生成一個 migrations 0001_xxxxx
再打上以下code
python .\manage.py migrate
再回到db觀看欄位
恭喜您,輕輕鬆鬆生成table
今天我們將model生成table,與超級使用者的建立,明天預計DB的關聯方式開始講起
我們明天見,各位掰掰~~~